home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compendium Deluxe 2
/
LSD and 17bit Compendium Deluxe - Volume II.iso
/
a
/
prog
/
asmsrc
/
icdocsmenu.lha
/
util2.s
< prev
Wrap
Text File
|
1987-10-01
|
18KB
|
721 lines
bra Open
Logo Incbin News
bitmap1.1 equ Logo
Bitmap2.1 equ Logo+3440
Bitmap3.1 equ Logo+6880
Bitmap4.1 equ Logo+10320
bitmap1 equ $70000 ;Screen 1 at $70000
bitmap2 equ $72800 ;Screen 2 at $72800
** Try changing the following 5 equates for cool fx! **
sped equ 4 ;Scrolly speed (1,2,4 or 8)
yspace1 equ 2 ;Sine spacing (Max 512)
yspeed1 equ 8 ;Sine wibble speed (max 512)
sinesize equ 140 ;Depth of sinescroller (max 220)
stoptime EQU 2 ;How many seconds scrolly pauses for!
blitwait macro
.bw\@ btst #6,2(a6) ;Blitwait macro...
bne.s .bw\@ ;Wait for blitter to stop
endm
Open
Section Fangs,code_c ;Put everything into chip memory!
opt c- ;Turn on Case Independant
Start lea variables(pc),a5 ;Variables pointer in A5
lea custom,a6 ;Custom chip pointer in A6
bsr deselect0 ;Turn off drive 0
bsr trash ;Trash the operating system
bsr intcustom ;Init Screen size,modulos etc.
bsr intbuffer ;Init double buffer!
bsr makecop ;Make the copper list
bsr initsine ;Init sinetable!
lea wherecop(pc),a0
move.l a0,cop1lc(a6) ;Tell system where copper is...
move.w copjmp1(a6),d0 ;And start it
move.w #$87e0,dmacon(a6) ;Enable Dma.
move.w #$20,intreq(a6) ;Clear VBI IRQ bit.
***********************
****** Main loop ******
***********************
.button lea custom,a6
btst #5,intreqr+1(a6) ;VBI interrupt?
beq.s .button
move.w #$20,intreq(a6) ;Clear VBI IRQ bit.
bsr cls ;Clear screen!
bsr dosine ;Do sine movement!
blitwait ;Wait for blitter to stop clearing screen!
bsr scroll ;Scroll message!
bsr blitsine ;Blit scrolly onto screen
bsr doublebuffer ;Double buffer the screen
Btst #7,$bfe001
Beq Exit
Btst #10,$dff016
Beq Exit
btst #6,$bfe001 ;Is left mouse button pressed?
bne.s .button
Exit bsr.s untrash ;Bring back operating system
moveq #0,d0 ;Stop a return error!
rts
trash bset #1,$bfe001 ;Turn power light off
move.l $4.w,a6
lea gfxname(pc),a1
moveq #0,d0
jsr -552(a6) ;Open graphics library
move.l d0,a0
move.l 38(a0),syscop(a5) ;Store old system copper address!
lea custom,a6
move.w intenar(a6),d0 ;Get system IRQ register
or.w #$8000,d0 ;Set top bit (For enable)
move.w d0,IRQ(a5) ;Store it
move.w dmaconr(A6),d0 ;Get system DMA register
or.w #$8000,d0 ;Set top bit (For enable)
move.w d0,DMA(a5) ;Store it
move.w #$7fff,intena(a6) ;All irq off
move.w #$7fff,dmacon(A6) ;All dma off
rts
untrash lea custom,a6
lea variables(pc),a5
move.w #$7fff,$96(a6) ;Kill DMA
move.w #$7fff,$9a(a6) ;Kill IRQ
move.w DMA(a5),dmacon(A6) ;Restore system DMA
move.w IRQ(a5),intena(a6) ;Restore system IRQ
move.w #$7fff,intreq(a6)
clr.w aud0vol(a6)
clr.w aud1vol(a6)
clr.w aud2vol(a6)
clr.w aud3vol(a6) ;Clear volume registers
move.l syscop(a5),d0 ;Get old system copper address
move.l d0,cop1lc(a6) ;And restore it!
move.l $4.w,a6
lea intname(pc),a1
moveq #0,d0
jsr -552(a6)
move.l d0,a6
jsr -390(a6)
bclr #1,$bfe001 ;Power light back on
rts
setmulti move.w d7,(a0)+ ;Copper 32 bit write
swap d0
move.w d0,(a0)+
swap d0
addq.w #2,d7
move.w d7,(a0)+
move.w d0,(a0)+
addq.w #2,d7
add.l d5,d0
dbra d6,setmulti
rts
intcustom clr.w bplcon1(a6) ;Scroll value
clr.w bplcon2(a6) ;Priorities
clr.w bpl1mod(a6) ;Modulo A
clr.w bpl2mod(a6) ;Modulo B
move.w #$0038,ddfstrt(a6) ;Data fetch start
move.w #$00d0,ddfstop(a6) ;Data fetch stop
move.w #$2c81,diwstrt(a6) ;Window start
move.w #$2cc1,diwstop(a6) ;Window stop
rts
makecop lea wherecop(pc),a0 ;Copperlist address
lea wherespr(pc),a1 ;First do sprites..
move.l a1,d0
moveq #7,d6 ;8 sprites
move.w #$120,d7 ;1st register no.
moveq #16,d5 ;16 bytes per sprite!
bsr setmulti
move.l a0,changecop(a5) ;Store copper address (For double buffer!)
move.l logbase(a5),d0 ;Bitmap address
moveq #1-1,d6 ;1 plane
move.w #$e0,d7 ;1st register no.
moveq #0,d5 ;Plane length
bsr setmulti
move.l #$01001200,(a0)+ ;Set 1 bitplane
move.l #$01800000,(a0)+ ;Colour 0
Move.w #$1801,Vpos
Lea Col_Bank(Pc),a1
Move.w #29,d1
Loo Move.w Vpos,(a0)+
Move.l #$fffe0180,(a0)+
Move.w (a1)+,d2
Move.w d2,(a0)+
Move.w #$0182,(a0)+
Mulu #$111,d2
move.w d2,(a0)+
Add.w #$680,Vpos
Dbf d1,Loo
Move.l #$d601fffe,(a0)+
move.l logoPlace1(a5),d0 ;Bitmap address
moveq #1-1,d6 ;1 plane
move.w #$e0,d7 ;1st register no.
moveq #0,d5 ;Plane length
bsr setmulti
move.l logoPlace2(a5),d0 ;Bitmap address
moveq #1-1,d6 ;1 plane
move.w #$e4,d7 ;1st register no.
moveq #0,d5 ;Plane length
bsr setmulti
move.l logoPlace3(a5),d0 ;Bitmap address
moveq #1-1,d6 ;1 plane
move.w #$e8,d7 ;1st register no.
moveq #0,d5 ;Plane length
bsr setmulti
move.l logoPlace4(a5),d0 ;Bitmap address
moveq #1-1,d6 ;1 plane
move.w #$ec,d7 ;1st register no.
moveq #0,d5 ;Plane length
bsr setmulti
Move.l #$01004200,(a0)+
Move.w #$0180,Vpos
Lea Logo+4*3440,a1
Move.w #15,d1
Lopp Move.w Vpos,(a0)+
Move.w (a1)+,(a0)+
Add.w #2,Vpos
Dbf d1,lopp
moveq #-2,d0
move.l d0,(a0)+ ;Wait for the impossible (END!)
rts
deselect0 lea cia_b,a0
bset #3,(a0) ;deselect drive 0
bset #7,(a0) ;switch motor off
bclr #3,(a0) ;latch motor signal in disk
rts
************************************
*********** END OF SETUP ***********
************************************
intbuffer move.l #bitmap1,logbase(a5) ;Init doublebuffer screen 1
move.l #bitmap2,physbase(a5) ;Init doublebuffer screen 2
Move.l #bitmap1.1,LogoPlace1(a5)
Move.l #bitmap2.1,LogoPlace2(a5)
Move.l #bitmap3.1,LogoPlace3(a5)
Move.l #bitmap4.1,LogoPlace4(a5)
rts
doublebuffer
move.l logbase(a5),d0
move.l physbase(a5),logbase(a5)
move.l d0,physbase(a5)
move.l changecop(a5),a0 ;Update copper!
moveq #0,d6
move.w #$e0,d7
moveq #0,d5
bsr setmulti
rts
cls moveq #-1,d0
move.l d0,bltafwm(a6) ;First and last word mask
clr.w bltcon1(a6) ;No special modes
clr.w bltdmod(a6) ;D modulo
move.w #%0000000100000000,bltcon0(a6) ;No minterm just enable d!
move.l logbase(a5),bltdpt(A6) ;Destination
move.w #(256<<6)!20,bltsize(a6) ;256 high by 20 words wide
rts
scroll tst.w stop(a5)
ble.s .ok
subq.w #1,stop(a5)
rts
.ok bsr blitshift
subq.w #sped,scrcount(a5)
ble.s .gog
rts
.gog move.w #16,scrcount(a5) ;Reset counter!
lea text(pc),a2
move.w messcount(a5),d0 ;Message count
.again moveq #0,d1
move.b (a2,d0.w),d1 ;Get char
bne.s .dlf
clr.w messcount(a5)
move.w messcount(a5),d0
bra.s .again ;Wrap at a zero
.dlf cmp.w #$ff,d1
bne.s .nstop
move.w #stoptime*50,stop(a5) ;Trigger stop
moveq #32,d1
.nstop addq.w #1,messcount(a5) ;Update scroll offset
lea scrarea+82,a0
lea font,a1
sub.w #32,d1 ;Ascii conversion!
.go cmp.w #20,d1
blt.s .nnl ;Next line of chars?
lea 40*16(a1),a1 ;Move down a line!
sub.w #20,d1
bra.s .go
.nnl add.w d1,d1
add.w d1,a1 ;Get to char
moveq #15,d0
.xloop move.w (a1),(a0) ;Plot char!
add.w #42,a0
add.w #40,a1
dbra d0,.xloop ;Loop for 16 high
rts
blitshift moveq #-1,d0
move.l d0,bltafwm(a6)
clr.w bltamod(a6)
clr.w bltdmod(a6)
clr.w bltcon1(a6)
move.w #%0000100100000000!$f0,d0
moveq #sped,d1
neg.w d1
moveq #12,d2
lsl.w d2,d1 ;Work out speed (shift!)
or.w d1,d0
move.w d0,bltcon0(a6) ;D=A Minterm
move.l #scrarea,d0
move.l d0,bltdpt(A6) ;Destination
addq.l #2,d0
move.l d0,bltapt(a6) ;Source
move.w #(17<<6)!20,bltsize(a6)
blitwait
rts
blitsine clr.w bltcon1(a6)
move.w #42-2,bltamod(a6)
move.w #40-2,bltdmod(a6)
move.w #40-2,bltbmod(a6)
move.l logbase(a5),d0
move.l d0,bltbpt(a6) ;Init destination pointers!
move.l d0,bltdpt(a6)
lea masklook(pc),a0
lea scrpos(pc),a1
move.l #scrarea+42,a2
move.l a2,bltapt(a6) ;Init source pointer!
lea bltafwm(a6),a3
lea bltsize(a6),a4
move.l a7,stacksave(a5) ;Save stack!
lea bltdpt+2(a6),a7
lea bltapt+2(a6),a5
moveq #20-1,d7 ;20 words
move.w #(16<<6)!1,d6
move.w #%0000100100000000!$f0,d5
move.w #%0000110100000000!$fc,d4
.loop move.w d5,bltcon0(a6) ;D=A
move.w (a0)+,(a3) ;First word mask
move.w a2,(a5) ;Source
move.w (a1)+,(a7) ;Destination
move.w d6,(a4) ;Blitsize
blitwait
move.w d4,bltcon0(a6) ;D=A+B
rept 15
move.w (a0)+,(a3) ;First word mask
move.w a2,(a5) ;Source
move.w (a1),bltbpt+2(a6) ;Destination
move.w (a1)+,(a7) ;Destination
move.w d6,(a4) ;Blitsize
blitwait
endr
addq.w #2,a2 ;Next word along!
dbra d7,.loop
lea variables(pc),a5
move.l stacksave(a5),sp
rts
initsine lea originalsine(pc),a0
move.w #511,d0
.loop1 sub.w #128,(a0)+ ;Init original sine
dbra d0,.loop1
lea originalsine(pc),a0
lea sine1(pc),a1
move.w #511,d0
.loop2 move.w (a0)+,d1
muls.w #sinesize,d1 ;Size!
asr.w #8,d1
add.w #sinesize/2,d1
mulu.w #40,d1 ;Multiple of 40!
move.w d1,(a1)+ ;Make sinetable!
dbra d0,.loop2
rts
dosine lea sine1(pc),a0
lea scrpos(pc),a1
move.l logbase(a5),a3
moveq #20-1,d7 ;20 words wide!
move.w sinestart1(a5),d0
move.w #1022,d3
move.w #yspace1,d4
.loop
rept 16
and.w d3,d0
move.w (a0,d0.w),d2
lea (a3,d2.w),a2 ;Add offset 1
add.w d4,d0 ;Spacing 1
move.w a2,(a1)+ ;Scroll position!
endr
addq.w #2,a3 ;Next word along!
dbra d7,.loop
sub.w #yspeed1,sinestart1(a5)
rts
*** Equates and data below! ***
custom EQU $dff000
bltddat EQU $000
dmaconr EQU $002
vposr EQU $004
vhposr EQU $006
dskdatr EQU $008
joy0dat EQU $00A
joy1dat EQU $00C
clxdat EQU $00E
adkconr EQU $010
pot0dat EQU $012
pot1dat EQU $014
potinp EQU $016
serdatr EQU $018
dskbytr EQU $01A
intenar EQU $01C
intreqr EQU $01E
dskpt EQU $020
dsklen EQU $024
dskdat EQU $026
refptr EQU $028
vposw EQU $02A
vhposw EQU $02C
copcon EQU $02E
serdat EQU $030
serper EQU $032
potgo EQU $034
joytest EQU $036
strEQU EQU $038
strvbl EQU $03A
strhor EQU $03C
strlong EQU $03E
bltcon0 EQU $040
bltcon1 EQU $042
bltafwm EQU $044
bltalwm EQU $046
bltcpt EQU $048
bltbpt EQU $04C
bltapt EQU $050
bltdpt EQU $054
bltsize EQU $058
bltcmod EQU $060
bltbmod EQU $062
bltamod EQU $064
bltdmod EQU $066
bltcdat EQU $070
bltbdat EQU $072
bltadat EQU $074
dsksync EQU $07E
cop1lc EQU $080
cop2lc EQU $084
copjmp1 EQU $088
copjmp2 EQU $08A
copins EQU $08C
diwstrt EQU $08E
diwstop EQU $090
ddfstrt EQU $092
ddfstop EQU $094
dmacon EQU $096
clxcon EQU $098
intena EQU $09A
intreq EQU $09C
adkcon EQU $09E
aud0lc EQU $0A0
aud1lc EQU $0b0
aud2lc EQU $0c0
aud3lc EQU $0d0
aud0len EQU $a4
aud1len EQU $b4
aud2len EQU $c4
aud3len EQU $d4
aud0per EQU $a6
aud1per EQU $b6
aud2per EQU $c6
aud3per EQU $d6
aud0vol EQU $a8
aud1vol EQU $b8
aud2vol EQU $c8
aud3vol EQU $d8
aud0dat EQU $aa
aud1dat EQU $ba
aud2dat EQU $ca
aud3dat EQU $da
bpl1pth EQU $0E0
bpl2pth EQU $0E4
bpl3pth EQU $0E8
bpl4pth EQU $0EC
bpl5pth EQU $0F0
bpl6pth EQU $0F4
bplcon0 EQU $100
bplcon1 EQU $102
bplcon2 EQU $104
bpl1mod EQU $108
bpl2mod EQU $10A
bpldat EQU $110
sprpt EQU $120
spr EQU $140
sd_pos EQU $00
sd_ctl EQU $02
sd_dataa EQU $04
sd_datab EQU $08
color00 EQU $180
color01 EQU $182
color02 EQU $184
color03 EQU $186
color04 EQU $188
color05 EQU $18a
color06 EQU $18c
color07 EQU $18e
color08 EQU $190
color09 EQU $192
color10 EQU $194
color11 EQU $196
color12 EQU $198
color13 EQU $19a
color14 EQU $19c
color15 EQU $19e
color16 EQU $1a0
color17 EQU $1a2
color18 EQU $1a4
color19 EQU $1a6
color20 EQU $1a8
color21 EQU $1aa
color22 EQU $1ac
color23 EQU $1ae
color24 EQU $1b0
color25 EQU $1b2
color26 EQU $1b4
color27 EQU $1b6
color28 EQU $1b8
color29 EQU $1ba
color30 EQU $1bc
color31 EQU $1be
diskreg EQU $bfd100
keydat EQU $bfec01
keyint EQU $bfed01
ctrla EQU $bfee01
ctrlb EQU $bfef01
ciatl EQU $bfe401
ciath EQU $bfe501
cia_a EQU $bfe001 ;disk input bits
cia_b EQU $bfd100 ;disk output bits
intname dc.b "intuition.library",0
gfxname dc.b "graphics.library",0
even
text DC.B ' INNER CITY ',$FF
DC.B ' PRESENTS ',$FF
DC.B ' DOCUMENTS DISK #2 ',$FF
DC.B 'CREDITS GOTO THE FOLLOWING MEMBERS '
DC.B ' CODING! ',$FF
DC.B ' FANGS ',$FF
DC.B ' GRAPHIX ',$FF
DC.B ' EDDIE ',$FF
DC.B 'ALL DOCUMENTS COLLECTED BY'
DC.B ' POD ',$FF
DC.B 'AND NOW FOR THE MEMBERS LIST'
DC.B ' ADS ',$FF
DC.B 'MANAGEMENT + FOUNDER + ORIGINALS SUPPLIER + SWAPPER'
DC.B ' CASP ',$FF
DC.B 'MUSICIAN'
DC.B ' POD ',$FF
DC.B 'MANAGEMENT + SWAPPER'
DC.B ' ENGINEER ',$FF
DC.B 'MODEM TRADER'
DC.B ' AXL ',$FF
DC.B 'SPECIAL ASSIGNMENTS'
DC.B ' DAX ',$FF
DC.B 'CODER'
DC.B ' HOTWIRE ',$FF
DC.B 'CODER'
DC.B ' Q.E.D ',$FF
DC.B 'CRACKER + CODER'
DC.B ' RORSCHACH ',$FF
DC.B 'SWAPPER'
DC.B ' ALMANAC ',$FF
DC.B 'SWAPPER'
DC.B ' DENNIS ',$FF
DC.B 'GRAPHIX + VIDEO SWAPPER'
DC.B ' TNT ',$FF
DC.B 'MUSICIAN '
DC.B ' DOMINO ',$FF
DC.B 'SWAPPER + VIDEO SWAPPER'
DC.B ' RICK ',$FF
DC.B 'SWAPPER + VIDEO SWAPPER'
DC.B ' FANGS ',$FF
DC.B 'CODER + SWAPPER'
DC.B ' CRAZY LEGS ',$FF
DC.B 'GRAPHIX'
DC.B ' KID VIDEO ',$FF
DC.B 'ORIGINAL SUPPLIER + VIDEO SWAPPER'
DC.B ' SUKY ',$FF
DC.B 'ORIGINAL SUPPLIER'
DC.B ' EDDIE ',$FF
DC.B 'GRAPHIX '
DC.B 'AND NOW FOR THE SUPER HOT GREETINGS ... '
DC.B ' TEKNO TISKE ',$FF
DC.B ' JROK 90 ',$FF
DC.B ' ZARCH ',$FF
DC.B ' COSY ',$FF
DC.B ' DEMOLISHER ',$FF
DC.B ' PIE ',$FF
dc.b ' DUG ',$FF
DC.B ' MOSES ',$FF
DC.B ' WIZOID ',$FF
DC.B ' N.R.G ',$FF
DC.B ' BILL ',$FF
DC.B ' JAILER / FOCUS ',$FF
DC.B ' OMEGA ONE ',$FF
DC.B ' DESTINY ',$FF
DC.B ' SNOWMAN ',$FF
DC.B ' FRED ',$FF
DC.B ' STEVE ',$FF
DC.B ' RANDOM ',$FF
DC.B ' SLIPSTREAM ',$FF
DC.B ' THR ',$FF
DC.B ' EXTREAM ',$FF
DC.B ' PENDEL EUROPA ',$FF
DC.B ' SILENTS ',$FF
DC.B ' MAYHEM ',$FF
DC.B ' QUARTEX ',$FF
DC.B ' ALCATRAZ ',$FF
DC.B ' CONQUEROR + ZIKE ',$FF
DC.B ' FAIRLIGHT ',$FF
DC.B ' VANDAL AND STATIC ',$FF
DC.B ' MAGNETIC FIELDS ',$FF
DC.B ' REBELS ',$FF
DC.B ' CRUSADERS ',$FF
DC.B ' PARADOX ',$FF
DC.B 'PLUS ALL THE REST I HAVE MISSED '
DC.B ' WRAP ',$FF
even
originalsine
DC.w 128,129,131,132,134,135,137,138,140,142,143,145,146,148,149
DC.w 151,152,154,156,157,159,160,162,163,165,166,168,169,171,172
DC.w 174,175,176,178,179,181,182,184,185,186,188,189,191,192,193
DC.w 195,196,197,199,200,201,202,204,205,206,207,209,210,211,212
DC.w 213,215,216,217,218,219,220,221,222,223,224,225,226,227,228
DC.w 229,230,231,232,233,234,235,236,236,237,238,239,240,240,241
DC.w 242,243,243,244,245,245,246,246,247,247,248,249,249,250,250
DC.w 250,251,251,252,252,252,253,253,253,254,254,254,254,255,255
DC.w 255,255,255,255,255,255,255,255,256,255,255,255,255,255,255
DC.w 255,255,255,255,254,254,254,254,253,253,253,252,252,252,251
DC.w 251,250,250,250,249,249,248,247,247,246,246,245,245,244,243
DC.w 243,242,241,240,240,239,238,237,236,236,235,234,233,232,231
DC.w 230,229,228,227,226,225,224,223,222,221,220,219,218,217,216
DC.w 215,213,212,211,210,209,207,206,205,204,202,201,200,199,197
DC.w 196,195,193,192,191,189,188,186,185,184,182,181,179,178,176
DC.w 175,174,172,171,169,168,166,165,163,162,160,159,157,156,154
DC.w 152,151,149,148,146,145,143,142,140,138,137,135,134,132,131
DC.w 129,127,126,124,123,121,120,118,117,115,113,112,110,109,107
DC.w 106,104,103,101,99,98,96,95,93,92,90,89,87,86,84
DC.w 83,81,80,79,77,76,74,73,71,70,69,67,66,64,63
DC.w 62,60,59,58,56,55,54,53,51,50,49,48,46,45,44
DC.w 43,42,40,39,38,37,36,35,34,33,32,31,30,29,28
DC.w 27,26,25,24,23,22,21,20,19,19,18,17,16,15,15
DC.w 14,13,12,12,11,10,10,9,9,8,8,7,6,6,5
DC.w 5,5,4,4,3,3,3,2,2,2,1,1,1,1,0
DC.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DC.w 0,0,0,0,0,1,1,1,1,2,2,2,3,3,3
DC.w 4,4,5,5,5,6,6,7,8,8,9,9,10,10,11
DC.w 12,12,13,14,15,15,16,17,18,19,19,20,21,22,23
DC.w 24,25,26,27,28,29,30,31,32,33,34,35,36,37,38
DC.w 39,40,42,43,44,45,46,48,49,50,51,53,54,55,56
DC.w 58,59,60,62,63,64,66,67,69,70,71,73,74,76,77
DC.w 79,80,81,83,84,86,87,89,90,92,93,95,96,98,99
DC.w 101,103,104,106,107,109,110,112,113,115,117,118,120,121,123
DC.w 124,126
sine1 ds.w 512
masklook
rept 20
dc.w %1000000000000000
dc.w %0100000000000000
dc.w %0010000000000000
dc.w %0001000000000000
dc.w %0000100000000000
dc.w %0000010000000000
dc.w %0000001000000000
dc.w %0000000100000000
dc.w %0000000010000000
dc.w %0000000001000000
dc.w %0000000000100000
dc.w %0000000000010000
dc.w %0000000000001000
dc.w %0000000000000100
dc.w %0000000000000010
dc.w %0000000000000001
endr
shftlook dc.w $09f0,$19f0,$29f0,$39f0,$49f0,$59f0,$69f0,$79f0
dc.w $89f0,$99f0,$a9f0,$b9f0,$c9f0,$d9f0,$e9f0,$f9f0
scrpos ds.w 320
rsreset
syscop rs.l 1
irq rs.w 1
dma rs.w 1
physbase rs.l 1
logbase rs.l 1
changecop rs.l 1
scrcount rs.w 1
stop rs.w 1
messcount rs.w 1
LogoPlace1 Rs.l 1
LogoPlace2 Rs.l 1
LogoPlace3 Rs.l 1
LogoPlace4 Rs.l 1
Vpos Rs.w 0
Col_bank dc.w 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
sinestart1 rs.w 1
stacksave rs.l 1
varisize rs.w 0
Variables dcb.b varisize,0
wherespr dcb.b 16*8,0 ;128 bytes for hardware sprites
wherecop dcb.b 2000,0 ;2k for copper list
**************************
section bud,data_c
font incbin FONT.RAW
section cake,bss_C
scrarea ds.b 42*20